package cn.duxiaod.demo.proxy.jdkDynamicProxy;

import cn.duxiaod.demo.proxy.staticproxy.SmsService;
import cn.duxiaod.demo.proxy.staticproxy.SmsServiceImpl;

public class JdkDynamicProxyTest {
    public static void main(String[] args) {
        /**
         * 1、定义一个接口及其实现类；
         * 2、自定义 InvocationHandler 并重写invoke方法，在 invoke 方法中我们会调用原生方法（被代理类的方法）并自定义一些处理逻辑；
         * 3、通过 Proxy.newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler h) 方法创建代理对象；
         */
        SmsService smsService = (SmsService) JdkDynamicProxyFactory.getProxy(new SmsServiceImpl());
        smsService.send("java!");
    }
}
